package vista;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Vector;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import controlador.ControladorProducto;
import modelo.DetalleProducto;
import modelo.Conexion;

public class VProducto extends JFrame {
	private static final long serialVersionUID = 1L;
	private JTextField txtCodProducto,txtDescripcion,txtPrecio,txtFechaReg,txtCantidad;
	private JComboBox jcbIngredientes,jcbCategorias;
	private JLabel lblTitulo,lblCantidad,lbltitList,lblCodProducto,lblCodCategoria,lblDescripcion,lblPrecio;
	private JLabel lblFechaReg,lblIngrediente;
	private JButton btnRegistrar,btnBuscar,btnLimpiar,btnSalir,btnAgregar,btnModificar,btnRemover;
	private JPanel pnNorte,pnBotones,p1,pnLista1,pnLista2;
	private JList listaIngredientes;
	private Conexion BD;
	private Vector<String> ingredientes;
    private Vector<String> categorias;
	DetalleProducto d;
  //  private Vector<DetalleProducto> detalles;
	private DefaultListModel listaModel;
	private JScrollPane listaScroolPane;
	
	//public JButton btnRetirar;
	
	// Referencia a controlador
	ControladorProducto ctrlPro;
	
	//Constructor de la Clase
	public VProducto() {
		//detalles=new Vector<DetalleProducto>();
	    listaModel=new DefaultListModel();
		try {
			BD = new Conexion();
			ingredientes=BD.cargarIngredientes();
			categorias=BD.cargarCategorias();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
		setTitle(".-.Comida Rapida.-.");
		
		txtCodProducto = new JTextField(10);
		txtDescripcion = new JTextField(10);
		txtPrecio = new JTextField(10);
		txtFechaReg = new JTextField(10);
		txtCantidad = new JTextField(3);
		txtPrecio.setText("0");
		txtPrecio.setEditable(false);
		listaIngredientes=new JList(listaModel);
		listaScroolPane=new JScrollPane(listaIngredientes);
		listaScroolPane.setSize(50,30);
	
		lblTitulo = new JLabel(".-. Datos del producto .-.");
		lblCodProducto = new JLabel("Codigo de producto:");
		lblCodCategoria = new JLabel("Categoria:                  ");
		lblDescripcion = new JLabel("Descripcion:              ");
		lblPrecio = new JLabel("Precio:                       ");
		lblCantidad = new JLabel("Cantidad:");
		lbltitList = new JLabel("Lista de Ingredientes a usar:");
		lblFechaReg = new JLabel("Fecha Registro:         ");
		lblIngrediente = new JLabel("Ingrediente:            ");
		btnRegistrar = new JButton("Registrar ");
		btnModificar = new JButton("Modificar ");
		btnAgregar=new JButton("Agregar");
		btnRemover=new JButton("Remover");
		btnLimpiar = new JButton(" Limpiar");
		btnBuscar = new JButton("Buscar");
		btnSalir = new JButton("    Salir   ");
		jcbIngredientes = new JComboBox(ingredientes);
		jcbCategorias = new JComboBox(categorias);
		DateFormat formato = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("es", "VE"));
		Date fecha = new Date();
		txtFechaReg.setText(formato.format(fecha));
		inicio();
		pnNorte= new JPanel(new GridLayout(9,4));
		
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(lblTitulo);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblCodProducto);
		p1.add(txtCodProducto);
		p1.add(btnBuscar);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblCodCategoria);
		p1.add(jcbCategorias);
		pnNorte.add(p1);
		
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblDescripcion);
		p1.add(txtDescripcion);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblPrecio);
		p1.add(txtPrecio);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblFechaReg);
		p1.add(txtFechaReg);
		pnNorte.add(p1);
	

		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lblIngrediente);
		p1.add(jcbIngredientes);
		p1.add(lblCantidad);
		p1.add(txtCantidad);
		pnNorte.add(p1);
		

		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(lbltitList);
		pnNorte.add(p1);
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(btnAgregar);
		p1.add(btnRemover);
		pnNorte.add(p1);
		
		pnLista1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		pnLista2= new JPanel(new GridLayout(2,1));
		
		p1= new JPanel(new FlowLayout(FlowLayout.LEFT));
		p1.add(listaScroolPane);
		pnLista1.add(p1);
		
	
pnBotones=new JPanel(new GridLayout(1,4));
		
		p1= new JPanel(new FlowLayout(FlowLayout.CENTER));
		p1.add(btnRegistrar);
		p1.add(btnModificar);
		p1.add(btnLimpiar);
		p1.add(btnSalir);
		pnBotones.add(p1);
		
		
		add(pnNorte,BorderLayout.NORTH);
		add(pnLista1);
		add(pnBotones,BorderLayout.SOUTH);
		asignarControladora();
		setSize(400,540);
	}
	   private void asignarControladora() {
		
		ctrlPro = new ControladorProducto(this);
		btnLimpiar.addActionListener(ctrlPro);
		btnBuscar.addActionListener(ctrlPro);
		btnSalir.addActionListener(ctrlPro);
		btnRegistrar.addActionListener(ctrlPro);
		btnAgregar.addActionListener(ctrlPro);
		btnRemover.addActionListener(ctrlPro);
		btnModificar.addActionListener(ctrlPro);
	}
	   public void limpiarCampos(){
			txtCantidad.setText("");
			txtCodProducto.setText("");
			txtDescripcion.setText("");
			txtPrecio.setText("0");
			txtCodProducto.requestFocus(true);
			desActivar();
				}
	
		public void desActivar(){
			btnRegistrar.setEnabled(false);
			txtCantidad.setEditable(false);
			txtDescripcion.setEditable(false);
			txtFechaReg.setEditable(false);
			btnLimpiar.setEnabled(false);
			
			txtCodProducto.setEditable(true);		
		}
		public void inicio(){
			btnRegistrar.setEnabled(false);
			jcbIngredientes.setEnabled(false);
			jcbCategorias.setEnabled(false);
			btnAgregar.setEnabled(false);
			btnRemover.setEnabled(false);
			btnLimpiar.setEnabled(false);
			btnModificar.setEnabled(false);
		    limpiarCampos();
			
		}
		public JButton getBtnAgregar() {
			return btnAgregar;
		}
		public void setBtnAgregar(JButton btnAgregar) {
			this.btnAgregar = btnAgregar;
		}
		public JButton getBtnBuscar() {
			return btnBuscar;
		}
		public void setBtnBuscar(JButton btnBuscar) {
			this.btnBuscar = btnBuscar;
		}
		public JButton getBtnLimpiar() {
			return btnLimpiar;
		}
		public void setBtnLimpiar(JButton btnLimpiar) {
			this.btnLimpiar = btnLimpiar;
		}
		public JButton getBtnModificar() {
			return btnModificar;
		}
		public void setBtnModificar(JButton btnModificar) {
			this.btnModificar = btnModificar;
		}
		public JButton getBtnRegistrar() {
			return btnRegistrar;
		}
		public void setBtnRegistrar(JButton btnRegistrar) {
			this.btnRegistrar = btnRegistrar;
		}
		public JButton getBtnRemover() {
			return btnRemover;
		}
		public void setBtnRemover(JButton btnRemover) {
			this.btnRemover = btnRemover;
		}
		public JButton getBtnSalir() {
			return btnSalir;
		}
		public void setBtnSalir(JButton btnSalir) {
			this.btnSalir = btnSalir;
		}
		public JComboBox getJcbCategorias() {
			return jcbCategorias;
		}
		public void setJcbCategorias(JComboBox jcbCategorias) {
			this.jcbCategorias = jcbCategorias;
		}
		public JComboBox getJcbIngredientes() {
			return jcbIngredientes;
		}
		public void setJcbIngredientes(JComboBox jcbIngredientes) {
			this.jcbIngredientes = jcbIngredientes;
		}
		public DefaultListModel getListaModel() {
			return listaModel;
		}
		public void setListaModel(DefaultListModel listaModel) {
			this.listaModel = listaModel;
		}
		public JScrollPane getListaScroolPane() {
			return listaScroolPane;
		}
		public void setListaScroolPane(JScrollPane listaScroolPane) {
			this.listaScroolPane = listaScroolPane;
		}
		public JTextField getTxtCantidad() {
			return txtCantidad;
		}
		public void setTxtCantidad(JTextField txtCantidad) {
			this.txtCantidad = txtCantidad;
		}
		public JTextField getTxtCodProducto() {
			return txtCodProducto;
		}
		public void setTxtCodProducto(JTextField txtCodProducto) {
			this.txtCodProducto = txtCodProducto;
		}
		public JTextField getTxtDescripcion() {
			return txtDescripcion;
		}
		public void setTxtDescripcion(JTextField txtDescripcion) {
			this.txtDescripcion = txtDescripcion;
		}
		public JTextField getTxtFechaReg() {
			return txtFechaReg;
		}
		public void setTxtFechaReg(JTextField txtFechaReg) {
			this.txtFechaReg = txtFechaReg;
		}
		public JTextField getTxtPrecio() {
			return txtPrecio;
		}
		public void setTxtPrecio(JTextField txtPrecio) {
			this.txtPrecio = txtPrecio;
		}
		public JList getListaIngredientes() {
			return listaIngredientes;
		}
		public void setListaIngredientes(JList listaIngredientes) {
			this.listaIngredientes = listaIngredientes;
		}
		
		

}
